package cn.stbchina.vp.base;

import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class VpBaseJFrame extends JFrame {
    public static void init() {
        VpBaseJFrame jFrame = new VpBaseJFrame();
        jFrame.setTitle("VP工具");
        jFrame.setSize(800, 600); // 设置默认大小
        jFrame.setLocationRelativeTo(null); // 居中显示
        // 创建菜单栏
        JMenuBar menuBar = new JMenuBar();

        // 创建一级菜单"上传文件"
        JMenu uploadMenu = new JMenu("上传文件");

        // 创建二级菜单"excel"
        JMenuItem excelMenuItem = new JMenuItem("excel模版上传");
        // 添加点击事件监听器
        excelMenuItem.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                uploadExcelFile();
            }
        });
        // 将二级菜单添加到一级菜单
        uploadMenu.add(excelMenuItem);
        // 将一级菜单添加到菜单栏
        menuBar.add(uploadMenu);
        // 设置菜单栏
        jFrame.setJMenuBar(menuBar);
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    // 上传Excel文件的方法
    private static void uploadExcelFile() {
        JFileChooser fileChooser = new JFileChooser();
        fileChooser.setFileFilter(new javax.swing.filechooser.FileNameExtensionFilter(
                "Excel文件 (*.xlsx, *.xls)", "xlsx", "xls"));

        int result = fileChooser.showOpenDialog(null);
        if (result == JFileChooser.APPROVE_OPTION) {
            File selectedFile = fileChooser.getSelectedFile();
            try {
                // 调用上传接口
                uploadFileToServer(selectedFile);
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(null, "文件上传失败: " + ex.getMessage(),
                        "错误", JOptionPane.ERROR_MESSAGE);
            }
        }
    }
    // 上传文件到服务器的方法
    private static void uploadFileToServer(File file) throws IOException, InterruptedException {
        String apiUrl = "http://10.10.5.223:9997/ServiceCenter-VPServer/system/operationsToolsCtr/uploadExcelTemplate"; // 接口地址

        // 读取文件内容
       // byte[] fileContent = Files.readAllBytes(file.toPath());

        // 构建multipart请求体（简化版，实际项目中可能需要更复杂的实现）
        // 注意：对于真正的文件上传，你可能需要使用第三方库如Apache HttpClient
        Map<String,Object> formText=new HashMap<>();
        formText.put("fileDic","/staples/fileServer/excel");
        HttpResponse response = HttpUtil.createPost(apiUrl)
                .form(formText)
                .form("fileObj", file)
                .header("Content-Type", "multipart/form-data")
                .execute();
        if (response.getStatus() == 200) {
            JOptionPane.showMessageDialog(null, "文件上传成功！", "提示", JOptionPane.INFORMATION_MESSAGE);
        } else {
            JOptionPane.showMessageDialog(null, "文件上传失败，服务器响应: " + response.getStatus(),
                    "错误", JOptionPane.ERROR_MESSAGE);
        }
    }
}
